﻿import com.dinmax.labonline.*
		
class Application {
	private static var _albumActivo:Album;
	private static var _cargador:Cargador;
	private static var _info:Info;
	private static var _main:Main;
	private static var _menuBiblioteca:MenuBiblioteca;
	private static var _menuPedido:MenuPedido;
	private static var _menuRetoque:MenuRetoque;
	private static var _mcAcordion:MovieClip;
	private static var _carrito:MovieClip;
	private static var _parente:MovieClip;
	private static var _tachito:MovieClip;
	private static var _htmlCom:Object;
	private static var _pedido:Pedido;
	private static var _fotos:ScrollFoto;
	private static var _error:String;
	private static var _pathMozilla:String;
	
		
	function Application(){
	}
	
	public static function run(parent:MovieClip){
		_parente=parent;
		crearMain(parent);
		crearInfo(parent);
		crearTachitoCarrito(parent);
		newAcordion(parent);
		crearFotos(parent);
		_menuBiblioteca.refreshBibliotecas();
		
	}
	
	public static function finApplication(){
	}
	
	/// PEDIDOS
	
	public static function setPedidoActivo(pedido:Pedido){
		_pedido=pedido;
	}
	public static function getPedidoActivo():Pedido{
		return _pedido;
	}
	public static function deletePedido(){
		LabManager.EventoAlbum=function(pedido:Album, _error:String) {
			if (_error==undefined){
				Application.finCargador();
				Application._menuPedido.borrarPedidos();
				Application._menuPedido.refreshPedidos();
			} else {
				trace("ERROR DELETE ALBUM APPLICATION:"+_error);
			}
		}
		unloadContent();
		cargador();
		LabManager.deletePedido(getPedidoActivo());		
	}
	/// ALBUMS
	public static function selectAlbum(album:Album){
		_albumActivo=album;
		_fotos.refreshFotos();
		var sCheck:String= getUltimoContenido().substr(getUltimoContenido().length-3);
		if(sCheck!="swf"){
		unloadContent();
		}
		unloadInfo();
		loadInfo(album);
	}
	
	public static function getAlbum():Album{
		return _albumActivo;
	}
	
	public static function deleteAlbum(){
		LabManager.EventoAlbum=function(album:Album, _error:String) {
			if (_error==undefined){
				//Application.finCargador();
				Application._menuBiblioteca.borrarBibliotecas();
				Application._menuBiblioteca.refreshBibliotecas();
				Application.selectAlbum(LabManager.getUsuario().getAlbums()[0]);
			} else {
				trace("ERROR DELETE ALBUM APPLICATION:"+_error);
			}
		}
		unloadContent();
		//cargador();
		LabManager.deleteAlbum(getAlbum());
	}
	
	public static function addAlbum(nombre:String, descripcion:String){
		LabManager.EventoAlbum=function(album:Album, _error:String) {
			if (_error==undefined){
				Application.finCargador();
				Application._menuBiblioteca.borrarBibliotecas();
				Application._menuBiblioteca.refreshBibliotecas();
			} else {
				trace("ERROR ADDALBUM APPLICATION:"+_error);
			}
		}
		cargador();
		LabManager.createAlbum(nombre, descripcion);
	}
	
	/// FOTOS
	public static function removeFoto(){
		LabManager.EventoFoto=function(_error:String){
			if(_error==undefined){
				Application.finCargador();
				Application._menuBiblioteca.borrarBibliotecas();
				Application._menuBiblioteca.refreshBibliotecas();
				Application.selectAlbum(Application.getAlbum());
			} else {
				trace("ERROR removeFoto: "+_error);
			}
		}
		Application.cargador();
		LabManager.removeFoto(getBorrarFoto());
	}
	public static function refreshFotoEfecto(){
		_menuRetoque.refreshFotoEfecto();
	}
	public static function getBorrarFoto():Foto{
		return _fotos.getBorrar();
	}
	public static function getFotoEnUso():MovieClip{
		return _fotos.getFotoEnUso();
	}
	
	public static function getScrollFoto():ScrollFoto{
		return _fotos;
	}
	
	public static function getTacho():MovieClip{
		return _tachito;
	}
	public static function getCarrito():MovieClip{
		return _carrito;
	}
	
	/// CONTENT
	public static function getPantalla():MovieClip{
		return _main.getPantalla();
	}
	public static function loadContent(path:String, centrado:Boolean, efecto:Boolean){
		finAyuda();
		if(LabManager.getEfectos()[1]!=undefined && !efecto){
					_main.loadContent("guardarCambios.swf");
		} else {
		_main.loadContent(path, centrado);
		}
	}
	public static function unloadContent(efecto:Boolean){
		if(getPantalla()._swf=="carrito.swf"){
			getCarrito().resetPrePedido();
		} 
		if(LabManager.getEfectos()[1]!=undefined && !efecto){
					_main.loadContent("guardarCambios.swf");
		} else {
		_main.unloadContent();
		}
	}
	public static function getContent():String{
		return _main.getPantalla()._content;
	}
	public static function resetContent(){
		_fotos.resetFotoEnUso();
	}
	public static function getUltimoContenido():String{
		return _main.getUltimoContenido();
	}
	public static function resetUltimoContenido(){
		_main.resetUltimoContenido();
	}
	
	/// INFO
	public static function getInfo():Info{
		return _info;
	}
	public static function loadInfo(objeto){
		_info.loadInfo(objeto.getNombre(), objeto.getDescripcion());
	}
	public static function unloadInfo(){
		_info.unloadInfo();
	}
	
	/// UNDO
	public static function cerrarUndo(indice:Number){
		_menuRetoque.cerrarUndo(indice);
	}
	
	/// MENUS
	public static function getMenuBiblioteca():MenuBiblioteca{
		return _menuBiblioteca;
	}
	
	public static function getMenuRetoque():MenuRetoque{
		return _menuRetoque;
	}
	
	public static function getMenuPedido():MenuPedido{
		return _menuPedido;
	}
	
	/// CARGADOR
	public static function cargador(parent:MovieClip){
		if(parent==undefined){
			parent=_parente;
		}
		_cargador=new Cargador(parent);
	}
	public static function finCargador(){
		_cargador.terminar();
	}
		
	
	/// ALERT ERROR
	public static function setError(error:String){
		_error=error;
	}
	public static function getError():String{
		return _error;
	}
	
	/// AYUDAS
	public static function ayuda(x:Number, y:Number, texto:String, izquierda:Boolean, arriba:Boolean){
		finAyuda();
		if(_parente.ayuda==undefined){
		_parente.createEmptyMovieClip("ayuda", _parente.getNextHighestDepth());
		}
		var contenedor:MovieClip=_parente.ayuda.attachMovie("Alert", "mcAlert", _parente.ayuda.getNextHighestDepth());
		contenedor._x=x;
		contenedor._y=y;
		var nX:Number=x;
		var nY:Number=y+15;
		if(izquierda){
			nX=x-150;
			nY=y+15;
		};
		if(arriba){
			if(!izquierda){ nX=x+20;}
			nY=y-40;
		};
		if(texto!=undefined){
		var pwAlert:PopWindow=new PopWindow(nX, nY, 150, 60, texto, 0xffffff);
		pwAlert.options(true);
		pwAlert.setFont("Arial", 10, 0xFF0000);
		pwAlert.setBordes([true,true,true,true], .7, [0, 0], [80,20], [0,255]);
		pwAlert.crear(_parente.ayuda);
		}
	}
	public static function finAyuda(){
		for(var sNested:String in _parente.ayuda){
			_parente.ayuda[sNested].removeMovieClip();
		}
	}
	
	
	/// FUNCIONES PRIVADAS
	private static function newAcordion(parent:MovieClip){
		var menuAcordion:UIAcordion = new UIAcordion();
		_mcAcordion=menuAcordion.crear(parent);
		var menu1:MovieClip=menuAcordion.addSegmento("Segmentos", "menu1", " Bibliotecas", "Carpetas");
		var menu2:MovieClip=menuAcordion.addSegmento("Segmentos", "menu2", " Retoques/efectos", "Slide");
		var menu3:MovieClip=menuAcordion.addSegmento("Segmentos", "menu3", " Pedidos", "Pedidos");
		addMenuBiblioteca(menu1);
		addMenuRetoque(menu2);
		addMenuPedido(menu3);
	}
	
	private static function addMenuBiblioteca(clip:MovieClip){
		_menuBiblioteca = new MenuBiblioteca(clip, _mcAcordion);
	}
	
	private static function addMenuRetoque(clip:MovieClip){
		_menuRetoque= new MenuRetoque(clip, _mcAcordion);
	}
	
	private static function addMenuPedido(clip:MovieClip){
		_menuPedido= new MenuPedido(clip, _mcAcordion);
	}
	
	public static function crearMain(parent:MovieClip){
		_main = new Main();
		_main.crear(parent);
	}
	
	private static function crearFotos(parent:MovieClip){
		_fotos=new ScrollFoto(parent);
	}
	private static function crearTachitoCarrito(parent:MovieClip){
		_tachito=parent.attachMovie("Tacho", "mcTacho", parent.getNextHighestDepth());
		_tachito._x=510;
		_tachito._y=343;
		_carrito=parent.attachMovie("Carrito", "mcCarrito", parent.getNextHighestDepth());
		_carrito._x=510;
		_carrito._y=300;
		_carrito.txt_carrito.text=Carrito.getFotos().length;
		_carrito.onPress=function(){
			if(Carrito.getFotos().length>0){
			Application.loadContent("carrito.swf");
			} else {
			Application.setError("Debe arrastrar fotos al carrito");
			Application.loadContent("alertError.swf");	
			}
		}
	}
	
	private static function crearInfo(parent:MovieClip){
		_info=new Info(parent);
	}
	
} //FIN CLASE
